Generic Programming for Software Evolution

نویسندگان

  • Johan Jeuring
  • Rinus Plasmeijer
چکیده

Change is endemic to any large software system. Business, technology, and organization usually frequently change in the life cycle of a software system. However, changing a large software system is difficult: localizing the code that is responsible for a particular part of the functionality of a system, changing it, and ensuring that the change does not lead to inconsistencies or other problems in other parts of the system or in the architecture or documentation is usually a challenging task. Software evolution is a fact of life in the software development industry, and leads to interesting research questions [21, 22, 31]. Current approaches to software evolution focus on the software development process, and on analyzing, visualizing, and refactoring existing software. These approaches support changing software by, for example, recognizing structure in code, and by making this structure explicitly visible, by means of refactoring or renovating the code. By making structure explicit, it becomes easier to adapt the code. A generic program is a program that works for values of any type for a large class of data types (or DTDs, schemas, class hierarchies). If data types change, or new data types are added to a piece of software, a generic program automatically adapts to the changed or new data types. Take as an example a generic program for calculating the total amount of salaries paid by an organization. If the structure of the organization changes, for example by removing or adding an organizational layer, the generic program still calculates the total amount of salaries paid. Generic programming is a new research field [14, 16, 9, 11, 6, 3], and its implications for software development and software evolution have hardly been investigated. Since a generic program automatically adapts to changed data types, generic programming is a promising approach to the software evolution problem, in particular for software where type formalisms and types play an important role, such as data-centric software. Assume structure has been recognized in software, for example by means of refactoring or renovating the code. Then a generic program makes those parts of the code which depend on the structure of data independent of that structure. This position paper

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Multiobjective Imperialist Competitive Evolutionary Algorithm for Solving Nonlinear Constrained Programming Problems

Nonlinear constrained programing problem (NCPP) has been arisen in diverse range of sciences such as portfolio, economic management etc.. In this paper, a multiobjective imperialist competitive evolutionary algorithm for solving NCPP is proposed. Firstly, we transform the NCPP into a biobjective optimization problem. Secondly, in order to improve the diversity of evolution country swarm, and he...

متن کامل

COORDINATING SOFTWARE EVOLUTION VIA TWO-TIER PROGRAMMINGi

Historically, progress in the science of programming has primarily been reflected by the evolution of programming languages. We propose that the next step in this evolution is a more comprehensive kind of programs: Rather than being defined exclusively in an extensional terms, we advocate a distinct programming paradigm where a program is specified through two tightly integrated representations...

متن کامل

Uniform Genericity for Aspect Languages

Aspect-oriented programming languages promise to provide better modularity than pure object-oriented decomposition. A typical benefit of increased modularity is ease of maintenance, evolution and reuse. However, it has been noted by various researchers that many of the first generation aspect languages do not provide the degree of reusability initially hoped for. In this paper, we argue that th...

متن کامل

High Performance Parallel Delaunay Mesh Generation and Adaption

To overcome the limitations of current meshing algorithms, a new parallel Delaunay mesh generation approach has been developed. With the steady evolution of software tools and languages, conventional programming paradigms are not sufficient anymore. Therefore, the generic programming paradigm is incorporated.

متن کامل

The Java and C++ platforms for scientific computing

Scientific computing is evolving beyond array processing to be more interactive, more graphical, more parallel, and less structured than it was when most scientific software was written. Languages such as C++ and Java, designed for object-oriented and generic programming, enhance the development of new data structures and algorithms that are part of this evolution. But these languages complicat...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2006